home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.util.StringTokenizer;
- import java.util.Vector;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.html.HTML.Attribute;
-
- class Map {
- private String name;
- private Vector areaAttributes;
- private Vector areas;
-
- public Map() {
- }
-
- public Map(String var1) {
- this.name = var1;
- }
-
- public void addArea(AttributeSet var1) {
- if (var1 != null) {
- if (this.areaAttributes == null) {
- this.areaAttributes = new Vector(2);
- }
-
- this.areaAttributes.addElement(var1.copyAttributes());
- }
- }
-
- protected RegionContainment createRegionContainment(AttributeSet var1) {
- Object var2 = var1.getAttribute(Attribute.SHAPE);
- if (var2 == null) {
- var2 = "rect";
- }
-
- if (var2 instanceof String) {
- String var3 = ((String)var2).toLowerCase();
- Object var4 = null;
-
- try {
- if (var3.equals("rect")) {
- var4 = new RectangleRegionContainment(var1);
- } else if (var3.equals("circle")) {
- var4 = new CircleRegionContainment(var1);
- } else if (var3.equals("poly")) {
- var4 = new PolygonRegionContainment(var1);
- } else if (var3.equals("default")) {
- var4 = javax.swing.text.html.Map.DefaultRegionContainment.sharedInstance();
- }
- } catch (RuntimeException var5) {
- var4 = null;
- }
-
- return (RegionContainment)var4;
- } else {
- return null;
- }
- }
-
- protected static int[] extractCoords(Object var0) {
- if (var0 != null && var0 instanceof String) {
- StringTokenizer var1 = new StringTokenizer((String)var0, ", \t\n\r");
- int[] var2 = null;
- int var3 = 0;
-
- while(var1.hasMoreElements()) {
- String var4 = var1.nextToken();
- byte var5;
- if (var4.endsWith("%")) {
- var5 = -1;
- var4 = var4.substring(0, var4.length() - 1);
- } else {
- var5 = 1;
- }
-
- try {
- int var6 = Integer.parseInt(var4);
- if (var2 == null) {
- var2 = new int[4];
- } else if (var3 == var2.length) {
- int[] var7 = new int[var2.length * 2];
- System.arraycopy(var2, 0, var7, 0, var2.length);
- var2 = var7;
- }
-
- var2[var3++] = var6 * var5;
- } catch (NumberFormatException var8) {
- return null;
- }
- }
-
- if (var3 > 0 && var3 != var2.length) {
- int[] var9 = new int[var3];
- System.arraycopy(var2, 0, var9, 0, var3);
- var2 = var9;
- }
-
- return var2;
- } else {
- return null;
- }
- }
-
- public AttributeSet getArea(int var1, int var2, int var3, int var4) {
- int var5 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
- if (var5 > 0) {
- int var6 = this.areas != null ? this.areas.size() : 0;
- if (this.areas == null) {
- this.areas = new Vector(var5);
- }
-
- for(int var7 = 0; var7 < var5; ++var7) {
- if (var7 >= var6) {
- this.areas.addElement(this.createRegionContainment((AttributeSet)this.areaAttributes.elementAt(var7)));
- }
-
- RegionContainment var8 = (RegionContainment)this.areas.elementAt(var7);
- if (var8 != null && var8.contains(var1, var2, var3, var4)) {
- return (AttributeSet)this.areaAttributes.elementAt(var7);
- }
- }
- }
-
- return null;
- }
-
- public AttributeSet[] getAreas() {
- int var1 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
- if (var1 != 0) {
- AttributeSet[] var2 = new AttributeSet[var1];
- this.areaAttributes.copyInto(var2);
- return var2;
- } else {
- return null;
- }
- }
-
- public String getName() {
- return this.name;
- }
-
- public void removeArea(AttributeSet var1) {
- if (var1 != null && this.areaAttributes != null) {
- int var2 = this.areas != null ? this.areas.size() : 0;
-
- for(int var3 = this.areaAttributes.size() - 1; var3 >= 0; --var3) {
- if (((AttributeSet)this.areaAttributes.elementAt(var3)).isEqual(var1)) {
- this.areaAttributes.removeElementAt(var3);
- if (var3 < var2) {
- this.areas.removeElementAt(var3);
- }
- }
- }
- }
-
- }
- }
-